//1.导入第三方
const express = require('express')
//3.导入path模块
const path  =require('path')
//2.导入配置项
const {port,expires}=require('./config/index')
//5.导入路由总表
const router = require('./routes/index')
//6.开启数据库的连接
const {connect}=require('./db/index')
//5.导入全局中间件
const {empty,error,info} =require('./middleware/index') 
//配置解析请求体
const body=require('body-parser')
//导入cookie模块
const cookie=require('cookie-parser')
//导入 express-session模块
const session=require('express-session')
//1.创建服务
const app =express()
//2.连接数据库
connect()

//3.配置静态资源，因为使用的是服务端渲染，html页面使用的是express-art-template渲染的
//所以静态资源包括css和js等内容
//因为图片是要上传的，所以给图片单独设置一个静态资源
app.use('/static',express.static(path.resolve(__dirname,'../shop_client/')))
app.use('/public',express.static(path.resolve(__dirname,'./public')))
//4.因为这里的页面要用模板引擎渲染，所以这里得配置模板引擎
app.engine('html',require('express-art-template'))
app.set('views',path.resolve(__dirname,'../shop_client/pages/'))
//配置解析请求体里的cookie
app.use(cookie())
//7.每一次的访问信息
app.use(info)
//配置解析请求体
app.use(body({extended:false}))
app.use(body.json())
//配置使用session空间
app.use(session({
    secret:'kangjianlei',
    resave:true,
    cookie:{maxAge:expires}
}))
//挂载路由总表
app.use(router)
//5.全局空路由中间件
app.use(empty)
//5.全局错误中间件
app.use(error)
//1.监听端口号
app.listen(port,console.log(`开启电商服务器成功，正在监听${port}端口号！！`))